查看原文
其他

【云和恩墨大讲堂】盖国强:脚踏实地,渐入佳境 - 从SQL审核到分布式存储

2015-12-25 盖国强 云和恩墨


盖国强(eygle)

云和恩墨创始人,ACOUG联合创始人,Oracle ACE 总监


昨晚是 2015 年平安夜,Eygle 在云和恩墨大讲堂回顾分享了他在 Oracle 技术嘉年华上的演讲主题,以下为详细内容整理:


这是接近2015年最后的分享了,可以做一点总结,同时祝大家圣诞快乐。


首先我和大家分享一下我们对于2015年 Oracle 产品战略的观察和体会。




第一个图从2015、2014两年 OOW 大会 Larry Ellison 的结语谈起,这两页是 Larry 最后一页 PPT 总结。


过去的两年 Oracle 都是"A Year of Innovation in the Cloud",Oracle 已经用了两个整年去做云上的变革,将企业的重心转移到云上来。




这是因为在云时代,数据库领域的竞争已经完全发生了改变,在 Gartner 的最新报告中(截止2015年10月),微软已经在数据库领导者象限超越了 Oracle,而 AWS 则紧随 Oracle 之后,云时代决胜之地在于云上。只有在云上的成功才能驱动这些伟大的公司在未来保持领先地位。


而最近2015年12月的新闻,微软宣布和中国电子科技集团公司联合建立合资公司,为中国政府、国企提供 Windows 10 授权、部署、管理和优化服务。外企的国产化步伐都开始向前迈进。也许在2016年 Oracle 也会和国内厂商合作卖出国产化的道路。Oracle 和腾讯合作落地公有云应该只是一个开始,有试水 Oracle 也会走向深入。




而对于云时代的 DBA 们,我们的生存状态和空间也一定会发生改变?向何处去,如何找到更好的发展空间?


上图可以让我们看到一定的端倪,在 Gartner 的技术成熟度曲线上,目前 DevOps 已经处于峰值之上,而 DBA 作为运维的一员,也应该思考在这个方向之上的改变。


一定要从以前较为纯粹的后端运维走向前端和主动运维,向 DevOps 取经。在 SQL 审核的方向上,DBA 将有更大的发展空间。我们认为 SQL 审核是当下 DevOps 在数据库 DBA 领域的最佳落地点。


我们认为 SQL 审核变被动救火为主动防御,对于今天的 DevOps 时代势在必行,而面对各种互联网+模式的应用和整合集中的数据库聚集,进行 SQL 审核和优化工作又刻不容缓,在太多的案例中,一条 SQL 的波动就可能导致一次灾难,而互联网模式的爆发式访问,则可能极大的放大质量问题的影响范围。




很多 SQL 的性能问题,都是由小的疏忽和不规范导致的,所以如果审核发现这些问题,应该由运维 DBA 们提出改进建议。


图示中的一个简单 SQL,竟然暗含了两个隐式转换,一次是因为数据类型的传入错误,一次是因为 Trim 函数的使用。


无论是开发还是架构,我们相信简单才是美。如果能够通过数据整理,使得 Trim 函数可以去除,这是最佳的解决方案,当然传入参数必须更改为正确的类型,并让开发人员了解 Oracle 数据库中隐式转换的含义。




在这个示例的 SQL 中,由于 DEALDATE 允许存在空值导致该字段上索引无法使用,同样 UNI_ID 也允许存在控制,联合索引也用不到,这个 SQL 在现实用户系统中,使用了全表扫描。


所以对于 Oracle 的开发人员和建模人员来说,理解 Oracle 的 NULL 值都非常重要。如果 DEALDATE 上允许存在一个 Default 值,比如 sysdate,那么索引就能被采纳,云和恩墨的杨廷琨写过一篇长文来描写 NULL 的作用,推荐大家可以阅读 - Oracle 中的 NULL 值解析


对于这个 SQL 的改写,实际上可以通过增加一个限定来实现,虽然我们可以了解业务和表的数据特点来改进,但是这个查询,前提条件是 BETWEEN 5和6,隐含的我们认为返回的记录不涵盖 NULL 值,所以改写限定可以让索引发挥作用。


很多复杂的 SQL 优化最终都简化到最基本的技术细节,现实就是如此。


如何将我们众多 DBA 一次一次的优化经验固定下来,由案例形成规则,由规则形成规范,进而进化成产品,这是我们最近在做的事情。




江苏移动信息技术中心资深 Oracle 专家戴建东这样描述:


其实在生产中,绝大多数 Oracle 的业务系统出现问题都是 SQL 导致的。但是大多 DBA,尤其是偏运维的 DBA 对 SQL 并不擅长,这些 DBA 承担着数据库运维和维护稳定性的职责,而他们对这些问题可能又无能为力。


原本 SQL 的质量应该是开发层负责的问题,但目前的现状是,开发人员管不了,运维很多人员不擅长。所以当系统出现问题的时候,就需要专业人员“救火”,而事发或事后救火往往是业务已经遭受了损失。


由此将 SQL 审核从运维 DBA 的职责中剥离出来,向开发端推进,我们认为是基于用户真正需求的 DevOps 实践。


而对于纯粹的 DBA,对于 SQL 的要求又自不同。


我在今年的嘉年华上还分享过一个主题,介绍了一个经典的优化案例,从应用到数据库,从 Dev 到 Ops,职责边界可以清晰的看到。


而对于 DBA,如何去深入固化自己的知识,也是我想通过这个案例说明的。




实例这个 SQL 通过两步改写使得性能获得了极大的改变和提升,而除了改写带来的效率变化之外,这个 SQL 在后台还隐藏着丰富的知识。




这是对于约束和结果集的限定




这是对于权限的不同要求




而对于 DBA 来说,还有更深层次的需求,我们看到当对两个相关数据表都回收权限之后。


通过 With 语句,我们更新了数据,这超越了权限限制。




这事实上是今年披露的著名 BUG 之一。


所有这些内容的详细视频,我们都会提供给大家。


Oracle 嘉年华大会的演讲中,我详细分享了这一年来我对行业的观察和思考,请大家在视频中进一步了解感兴趣的议题。


本课程文档下载地址:

http://pan.baidu.com/s/1qWQwhPE


今天首先整理和发布的是"Oracle 技术嘉年华"主会场的四个视频和 PPT 资源,分别来自:吴承杨、盖国强、Andrew Holdsworth、杨廷琨。这四个视频,是一个上午的演讲资料,希望能够从四个纬度为大家分享这一年 Oracle 的代表方向,从技术到行业,从核心革新到优化。感谢四位嘉宾的精彩贡献。


视频下载地址:

链接: http://pan.baidu.com/s/1dEtiP2L

密码: 2kq4


如何加入云和恩墨大讲堂微信群

搜索盖国强(Eygle)微信号:eeygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。

微信回复 20151217,下载云和恩墨大讲堂12月17日(周四晚)老熊的分享文档 - 关于RAC数据库 load balance 案例分析



干货分享

【往期文章】

Linux 强制 free cache 导致数据库实例 crash

隐含参数与 Library Cache 与 Shared Pool Latch 原理

The database instance Crash because the CPU High ?

某客户 RAC 由于掉电导致系统崩溃的恢复过程

Oracle 里面如何实现只回滚某个事务的一部分内容

Library cache lock 引发的一个案例

某客户 5TB RAC 恢复小记

XTTS(Cross Platform Incremental Backup) 的测试例子

如何解决 Oracle GoldenGate 没有主键的问题?

Connect By 可以做什么

Oracle 中的 NULL 值解析


【资源下载】

2015Oracle技术嘉年华PPT合辑

云和恩墨
数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。重点包括升级迁移/性能优化/SQL审核业务架构电子渠道(网络销售)分析系统、数据治理IT基础架构分布式存储解决方案数据架构Oracle DB2 MySQL NoSQL专项服务:架构/安全/容灾/优化/整合/升级/迁移运维服务:运维服务 代维服务人才培养:个人认证 企业内训软件产品:工具软件(SQL审核、监控、数据恢复)应用架构数据建模|应用软件开发质量管控_SQL审核|审核和优化

恩墨学院

恩墨学院是云和恩墨(北京)信息技术有限公司旗下的培训事业部,创业数年专注于数据库认证、技能培训,以专业的讲师塑造品牌,以专业的训练保证就业,目前已经发展成为国内数据库领域培训领导品牌。



点击原文链接下载分享文档

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存